#ifndef AST_EXPRESSION_LOGICAL_OR_EXPR_H
#define AST_EXPRESSION_LOGICAL_OR_EXPR_H

#include "../ASTNode.h"

class LogicalANDExpr;

/*
C99 6.5.14
logical-OR-expression:
		logical-AND-expression
		logical-OR-expression    ||    logical-AND-expression
*/
class LogicalORExpr : public ASTNode
{
protected: 
	LogicalORExpr(void)
		: ASTNode(ASTNode::logical_OR_expression){};
public:
	LogicalORExpr(LogicalANDExpr *pSingleExpr)
		: ASTNode(ASTNode::logical_OR_expression)
		, m_pAndExpr(pSingleExpr)
		, m_pOrExpr(NULL){};
	LogicalORExpr(LogicalORExpr *pOrExpr, LogicalANDExpr *pAndExpr)
		: ASTNode(ASTNode::logical_OR_expression)
		, m_pAndExpr(pAndExpr)
		, m_pOrExpr(pOrExpr){};


	virtual ~LogicalORExpr(void);

	virtual void						codeGen();

protected:
	LogicalANDExpr *					m_pAndExpr;
	LogicalORExpr *						m_pOrExpr;
};


#endif

